package com.zwj.design.test.behavior.strategy;

import com.zwj.design.test.behavior.strategy.character.GameCharacter;
import com.zwj.design.test.behavior.strategy.character.impl.YJFCharacter;
import com.zwj.design.test.behavior.strategy.character.impl.ZTTCharacter;

/**
 * 练习策略模式
 * @author 张文接
 * @version 1.0
 * @createTime 2024/3/14 23:04
 */
public class Demo {
    /**
     * 题目：在游戏开发中，设计一个角色战斗系统，其中不同的角色有不同的攻击策略。请使用策略模式设计该系统，并给出相关类图和代码框架。
     *
     * 题目描述： 假设我们有一个游戏角色类 GameCharacter，它具有一个攻击行为，但不同角色的攻击方式各异（如近战攻击、远程攻击、魔法攻击等）。
     * 请你定义一个策略接口 AttackStrategy，并实现三个具体策略类 MeleeAttackStrategy、RangedAttackStrategy 和 MagicAttackStrategy。
     * 然后在 GameCharacter 类中引入一个策略对象属性，使得角色可以根据需要切换其攻击策略。
     */
    public static void main(String[] args) {
        GameCharacter character2 = new YJFCharacter();
        character2.display();
        character2.fight();

        GameCharacter character = new ZTTCharacter();
        character.display();
        character.fight();
    }
}
